home *** CD-ROM | disk | FTP | other *** search
/ Gamers Delight 2 / Gamers Delight 2.iso / Aminet / game / misc / fastlife_2_7.lha / FastLife2.7 / FastLife.doc < prev    next >
Text File  |  1994-01-16  |  27KB  |  793 lines

  1.  
  2.  
  3.  
  4. Document FastLife Version 2.7 documentation
  5.  
  6. FastLife Program Documentation
  7. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  8.  
  9.   Version 2.7 16-Jan-1994
  10.  
  11. FastLife is an Amiga implementation of Conway's Game of Life.
  12.  
  13. FastLife may be freely distributed.
  14.  
  15. Amiga Software Release 2.04+ and LIBS:reqtools.library 38+ are required
  16. to run FastLife.
  17.  
  18. 1. Quick Start
  19. ==============
  20.  
  21. NOTE - Kickstart 2.04+ and LIBS:reqtools.library 38.961+ are required to
  22. run FastLife.
  23.  
  24.  1. Double click on the FastLife Icon
  25.  2. Select "Cancel" in the screen mode requester
  26.  3. Select the "Control-Run" menu item
  27.  
  28.       OR
  29.  
  30.  1. Double-click on the FastLife Icon
  31.  2. Select "Cancel" in the screen mode requester
  32.  3. Select "Project-Open" menu item
  33.  4. Select "acorn.life" and press <return>
  34.  5. Click in the center of the screen
  35.  6. Select the "Control-Run" menu item
  36.  
  37. 2. Credits
  38. ==========
  39.  
  40.    o  Intuition interface and integration by Ron Charlton
  41.    o  Blitter life routines by Tomas Rokicki
  42.    o  Requesters use ReqTools by Nico Francois
  43.  
  44. 3. Features and Changes
  45. =======================
  46.  
  47. 3.1. Features
  48. -------------
  49.  
  50.    o  Full Intuition interface
  51.    o  Any screen width and height (if you have enough memory)
  52.    o  Screen mode and screen size requester
  53.    o  Random Field Generation
  54.    o  Torus mode (screen edge wraps around)
  55.    o  Speed control
  56.    o  Run for a specified number of generations
  57.    o  Run to a specified generation
  58.    o  Runs from Workbench and CLI under Kickstart 2.04+
  59.    o  150+ Life patterns in text file format
  60.    o  14 new "SpaceFiller" patterns
  61.  
  62. 3.2. Changes from FastLife 2.2
  63. ------------------------------
  64.  
  65. FastLife uses new, blazingly fast Life routines written by Tomas
  66. Rokicki. FastLife can now update a 320 by 200 screen at up to 170
  67. generations per second on a 25 MHz Amiga 3000, depending on what pattern
  68. is displayed. Your mileage may vary.
  69.  
  70. You can get Tomas' Life program, version 6.1, on Fred Fish disk 837.
  71. FastLife no longer has a CPU mode and BLITTER mode; it always uses
  72. Tomas' routines.
  73.  
  74. FastLife will generate a random field on request.
  75.  
  76. FastLife has a torus option that connects the top edge of the life
  77. universe to the bottom edge and the left edge to the right edge.
  78.  
  79. FastLife has AmigaGuide format documentation.
  80.  
  81. Miscelleanous corrections (that I hope no one has found a need for) have
  82. been made.
  83.  
  84. 4. The Game of Life
  85. ===================
  86.  
  87. In 1970 John Horton Conway, a mathematician at the University of
  88. Cambridge, invented the game of Life.  It was introduced by Martin
  89. Gardner in his October 1970 Scientific American column. Conway's goal
  90. was to create a board "game" with simple rules that would exhibit
  91. complex behavior.  The game is played on an infinite checkerboard.  Each
  92. cell on the checkerboard, is either alive or dead (ON or OFF).  Time
  93. moves in steps; each step marks the life of one generation.
  94.  
  95. Each cell's condition (ON or OFF) in the next generation is based on the
  96. life in it and its eight neighboring cells.  A cell is represented by
  97. the asterisk (*) below; its eight neighbors are numbered -
  98.  
  99.      123
  100.      4*5
  101.      678
  102.  
  103. Three rules decide a cell's state in the next generation:
  104.  
  105.      1.  If there are 2 ON neighbors the cell stays ON or OFF
  106.      2.  If there are 3 ON neighbors the cell is ON
  107.      3.  0, 1, 4, 5, 6, 7 or 8 ON neighbors the cell is OFF
  108.  
  109. The analogy to real life is this: too many neighbors and the cell dies
  110. from overcrowding, too few neighbors and the cell dies from loneliness.
  111. Three cells results in trisexual mating.
  112.  
  113. The ON/OFF state is determined for all cells on the board before
  114. changing to the next generation.
  115.  
  116. FastLife uses one pixel on the screen to represent one cell on the
  117. board.  The screen dimensions determine how many cells are available in
  118. FastLife, so the board is not infinite, as defined by Conway.
  119.  
  120. An excellent reference for learning more about the history and
  121. philosophical implications of Life is
  122.  
  123.      "The Recursive Universe" by William Poundstone,
  124.      Contemporary Books, Chicago, 1985
  125.  
  126. The book consists of alternating chapters about Conway's game of Life
  127. and modern physics, and what the game of Life can reveal about the
  128. beginning of biological life and its replication.
  129.  
  130. 5. About FastLife
  131. =================
  132.  
  133. I developed FastLife because I wanted to combine the speed of Tomas
  134. Rokicki's Life routines with an Intuition interface and access to many
  135. of the classic Life patterns.
  136.  
  137. The Life patterns supplied with FastLife are stored in a simple text
  138. file (see `File Format' below).  Although FastLife does not allow
  139. on-screen editing of Life patterns, you may use your favorite text
  140. editor to create text file patterns to load into FastLife.
  141.  
  142. Conway defined an infinite board for Life; FastLife limits itself to the
  143. size of a screen on your Amiga. Patterns that spread to the edge of the
  144. screen will be "eaten" away there, unless you have the `Torus' option
  145. turned on, so you should be sure that you select a screen size that will
  146. contain the entire pattern you want to view.  This corruption of the
  147. Life pattern at the edge of the screen is not detected by FastLife; you
  148. must observe for yourself when this happens.
  149.  
  150. The corruption occurs at the edge of the screen, which may not be the
  151. same as edge of what is visible to you, depending on whether you choose
  152. a screen size larger than the default for the screen mode.
  153.  
  154. 6. Starting FastLife
  155. ====================
  156.  
  157. You may start FastLife from either the Workbench or CLI (Shell).
  158.  
  159. 6.1. WORKBENCH
  160. --------------
  161.  
  162. You may start FastLife from Workbench by double-clicking its icon.
  163. Several ToolTypes may be used. To set a ToolType click once on
  164. FastLife's icon and then press Right-Amiga-I. Click on New or an
  165. existing ToolType to edit. Enter for example,
  166.  
  167.      ALIVECHAR=X
  168.  
  169. Finally, select Save.  FastLife will then honor the ToolType. The 
  170. supplied icon has parentheses around most of the ToolTypes. Remove the
  171. parentheses to use that ToolType.
  172.  
  173. The ToolTypes available are:
  174.  
  175.      ALIVECHAR=x
  176.  
  177.      FILEPAT=#?name.???
  178.  
  179. You must use uppercase for the text to the left of the equal sign for
  180. FastLife to recognize the ToolType.
  181.  
  182. Do not change the WINDOW= ToolType. It is used to display error messages
  183. under unusual circumstances.
  184.  
  185. The character that follows ALIVECHAR= indicates what character in
  186. Picture files represents an ON cell. All other characters in the pattern
  187. will indicate OFF cells.
  188.  
  189. The string that follows FILEPAT= determines what file names appear in
  190. the Open file requester. Amiga wildcards are supported. "?" (no quotes)
  191. in the string matches any one character. "#?" (no quotes) matches any
  192. number of characters. Upper/lowercase do not matter. Some examples:
  193.  
  194.   #?.life     any name ending in ".life"
  195.   #?.???      any name that has a three-character extension
  196.   #?breeder#? any name that contains "breeder" anywhere in it
  197.  
  198. 6.2. SHELL or CLI
  199. -----------------
  200.  
  201. You may start FastLife from a Shell or CLI by typing
  202.  
  203.      1> FastLife         or
  204.  
  205.      1> run FastLife
  206.  
  207. FastLife's template is  ALIVECHAR/K,FILEPAT/K.   Typing
  208.  
  209.      1> FastLife ?
  210.  
  211. will display the template and wait for you to enter arguments. 
  212.  
  213. To specify the Picture file character for ON pixels as the uppercase
  214. letter 'O' use
  215.  
  216.      1> FastLife ALIVECHAR O
  217.  
  218. Finally, 
  219.  
  220.      1> FastLife FILEPAT #?.lif
  221.  
  222. will set the file requester pattern to "#?.lif" initially. You can
  223. change the settings for CALCMODE and FILEPAT after FastLife has started.
  224.  
  225. NOTE - The Life files supplied with FastLife all end in ".life".
  226. "#?.life" is FastLife's default pattern.
  227.  
  228. 7. Using FastLife
  229. =================
  230.  
  231. 7.1. Effects of Screen Mode & Size
  232. ----------------------------------
  233.  
  234. WARNING - The Amiga is capable of producing screen modes that will cause
  235. physical damage to certain types of monitors. See your Amiga
  236. documentation for further information. Do not select screen modes that
  237. your monitor does not support.
  238.  
  239. You may choose a screen width, height, and one of several screen modes
  240. for the FastLife screen. The screen mode determines the maximum number
  241. of pixels visible vertically and horizontally. Width and height
  242. determine the actual size of the screen, part of which may not be
  243. visible.
  244.  
  245. For instance, if you select a screen mode of NTSC:Lores, width of 
  246.  600 and height of 512, then a life pattern up to 600 by 512 will fit on
  247. the screen. But you will only be able to see a 320 by 200 portion of the
  248. screen at once. Pushing the mouse pointer against the edge of the screen
  249. will cause the screen to scroll.
  250.  
  251. Another way of looking at this: The screen mode determines how big the
  252. pixels are, width and height determines how many there are.
  253.  
  254. You may select any screen width or height greater than 32 and smaller
  255. than about 16384. Screen sizes smaller than 320 by 200 may prevent
  256. displaying requesters and menus.  You may want to remember the menu
  257. keyboard shortcuts, especially the ScreenSize shortcut, if you choose a
  258. small screen size.
  259.  
  260. Be sure to read `A Bug by Any Other Name' below to learn how FastLife
  261. updates your view of the Life universe.
  262.  
  263. 7.2. Choosing a Screen Mode & Size
  264. ----------------------------------
  265.  
  266. When you start Fastlife it will open a screen mode requester. Select a
  267. screen mode, height and width. You may click on a mode to select it, or
  268. double click to select and close the requester. NOTE - You must press
  269. either <Return> or <Tab> after changing the width or height. You may
  270. click a checkmark to select a default. Click "Ok" to create a screen as
  271. you've selected, or click "Cancel" to quit FastLife. You may use the
  272. right Amiga key with an underlined letter in the requester to select a
  273. button.
  274.  
  275. FastLife will exit if memory is insufficient for the selected screen
  276. size. If you can't get the screen size you want, try closing other
  277. screens, windows and projects/tools to free up memory. You may even want
  278. to reboot your Amiga in case memory has been fragmented by other
  279. programs.
  280.  
  281. 7.3. Run Life Run! See Life Run!
  282. --------------------------------
  283.  
  284. After opening its screen, FastLife will display its name. You may select
  285. the menu item Control-Run and see FastLife run for over 3100 generations
  286. before the pattern becomes stable, or you may immediately select menu
  287. item Project-New or Project-Open to clear the screen (and open a file).
  288.  
  289. You can use the Left-Amiga-N and Left-Amiga-M key combinations to expose
  290. the FastLife screen or hide it behind the Workbench screen.  You can
  291. also click in the small FastLife window on the Workbench to bring
  292. FastLife's screen to the front or use the Project-`Screen To Back' menu
  293. item.
  294.  
  295. 7.4. A Bug by Any Other Name
  296. ----------------------------
  297.  
  298. A bug by any other name would smell... so I call it a feature.
  299.  
  300. FastLife does its Life calculations in a buffer, then transfers the
  301. result to your screen.  The transfer takes a significant amount of time.
  302. When you have a screen that is near the default for a particular screen
  303. mode (e.g., 320x200 for LORES) FastLife updates the entire screen every
  304. generation.  When you select a screen size that is very much larger than
  305. the default then FastLife gets lazy and only updates the visible part of
  306. the screen. This helps FastLife run as fast as it can.  A side effect 
  307. of this might be considered a bug: FastLife only updates the "standard"
  308. part of the screen and not the overscan portion. So, in some cases you
  309. will see a small band at the right edge and the bottom edge of your view
  310. that is not being updated. Note that it is only your view that is not
  311. being updated entirely; FastLife always updates its entire buffer.
  312.  
  313. If you use one of the number keys '2' through '9' to slow FastLife, then
  314. it decides you are not in a hurry and it will update the entire screen
  315. every generation. If the static band at the edge of your view is a
  316. bother, press the '2' key. FastLife will then update the whole screen,
  317. and you lose a little speed.
  318.  
  319. 8. Menus
  320. ========
  321.  
  322. FastLife has the following menus:
  323.  
  324. `Project'
  325.     `New'
  326.     `Open...'
  327.     `Open Again'
  328.     `About'
  329.     `Screen To Back'
  330.     `Generation'
  331.         `Show'         <G>
  332.         `Zero'         <Z>
  333.         `Run For...'   <F>
  334.         `Stop At...'   <H>
  335.     `Screen Size'      <E>
  336.     `Priority'
  337.         `Lower'
  338.         `Normal'
  339.         `Higher'
  340.     `Quit'             <Q>
  341. `Control'
  342.     `Once'             </>
  343.     `Speed'
  344.     `Run'              <R>
  345.     -----
  346.     `Torus'            <T>
  347.     `Random'
  348.         `Random Field' <P>
  349.         ------------
  350.         `Random Seed'
  351.         `Set Seed...'
  352.         `Set Count...' <C>
  353.  
  354. The hierarchy follows:
  355.  
  356. 8.1. Project
  357. ------------
  358.  
  359. 8.1.1. New
  360. ----------
  361.  
  362. New clears the screen. Use it when you want to start with an empty
  363. screen.
  364.  
  365. 8.1.2. Open...
  366. -----------
  367.  
  368. Open allows you to load a new Life pattern from disk.  The supplied Life
  369. file names end with ".life" (no quotes).
  370.  
  371. A ReqTools requester will display files that match the displayed
  372. pattern. Upper and lower case do not matter. Click on a name or enter
  373. one.  Double click on a file name or select "Ok" to open it. The "get"
  374. button will re-read the directory. NOTE - Earlier versions of FastLife
  375. added ".life" to a file name if it was not supplied. FastLife no longer
  376. does.
  377.  
  378. The mouse pointer will change to a picture of a glider to indicate
  379. FastLife is waiting for a click. Click on the screen to indicate the
  380. position of the top-left corner of the pattern. FastLife can read four
  381. file types:  Absolute, Relative, Picture, and RLE (denoted in the files
  382. with "#A", "#R", "#P" or "#E").  See `File Format' below.  You can use
  383. the right mouse button to cancel picking a screen location.
  384.  
  385. FastLife will indicate if part of the Life pattern falls off the
  386. screen's edge.
  387.  
  388. NOTE - The Life files are separated into directories by screen size.
  389. Within the 320 by 200 directory the files are in sub-directories solely
  390. so floppy disk users won't have to wait for the file requester to load
  391. one hundred and fifty filenames when opening a file.
  392.  
  393. 8.1.3. Open Again
  394. -----------------
  395.  
  396. Open Again opens the previous file again. You must again click to show
  397. where to load the pattern on the screen. You may want to select "New"
  398. before using "Open Again".  The file name is not lost when "New" is
  399. selected.
  400.  
  401. 8.1.4. About
  402. ------------
  403.  
  404. About shows the current version number and date, along with credits to
  405. the authors.
  406.  
  407. 8.1.5. Screen To Back
  408. ---------------------
  409.  
  410. Screen To Back sends the FastLife screen behind other screens.
  411.  
  412. 8.1.6. Generation
  413. -----------------
  414.  
  415. 8.1.6.1. Show
  416. -------------
  417.  
  418. Show shows the current generation number. The first generation is 
  419. numbered zero.
  420.  
  421. 8.1.6.2. Zero
  422. -------------
  423.  
  424. Zero sets the generation number to zero.
  425.  
  426. 8.1.6.3. Run For...
  427. ----------------
  428.  
  429. Run For opens a requester. You may select a number of generations to
  430. run. For example, if the current generation is 112, and you select 100,
  431. FastLife will run to generation 212 and stop. You may stop FastLife
  432. before the "Run For" limit is reached.
  433.  
  434. 8.1.6.4. Stop At...
  435. ----------------
  436.  
  437. Stop At opens a requester. You may select the generation number to run
  438. to.  You may stop FastLife before the "Stop At" limit is reached.
  439.  
  440. 8.1.7. Screen Size
  441. ------------------
  442.  
  443. Screen Size opens a screen mode requester. NOTE - The current Life
  444. pattern on the screen will be lost when this menu item is selected. See
  445. `Choosing a Screen Mode & Size'.
  446.  
  447. 8.1.8. Priority
  448. ---------------
  449.  
  450. Set FastLife's task priority.
  451.  
  452. Caveat: Task priorities on the Amiga range from -127 to +127.  It might
  453. appear that increasing or decreasing Fastlife's priority by only one
  454. would have little effect.  This is not true since the priority number
  455. only establishes an ORDER.  The difference between the priorities
  456. matters not.  If you select a Higher priority for FastLife it can
  457. prevent any program at a lower priority (such as zero) from running at
  458. all.  Since most programs run at priority zero, FastLife with Higher
  459. Priority (1) can stall them completely.  Conversely, if FastLife's
  460. priority is Lower (-1) other programs can stop FastLife completely.  A
  461. complication to all this is the interaction of programs when they are
  462. waiting.  A program with higher priority that is doing nothing can allow
  463. lower priority programs to run (as when a word processor is waiting for
  464. you to type something). Polite programs yield to lower priority programs
  465. as much as possible.  If FastLife is running at its fastest (i.e.,
  466. number key '1' selected) it will never yield to lower priority programs,
  467. thus stalling them completely.  If you select a number key '2' through
  468. '9' FastLife will be waiting part of the time and will yield to other
  469. programs.  If you select a Lower priority for FastLife and a higher
  470. priority program does no waiting (as when you "TYPE" a file in a CLI or
  471. Shell) FastLife will not respond to your commands.  The cure for this is
  472. to cause the other program to wait (For instance, stop the mandelbrot
  473. generator, or send Break to the CLI or Shell, etc.).
  474.  
  475. 8.1.8.1. Lower
  476. --------------
  477.  
  478. Lower sets Fastlife's task priority to -1. AmigaOS will then allow most
  479. programs to run before FastLife since most programs run at priority
  480. zero.
  481.  
  482. 8.1.8.2. Normal
  483. ---------------
  484.  
  485. Normal sets FastLife's priority to zero. Most programs run at priority
  486. zero.
  487.  
  488. 8.1.8.3. Higher
  489. ---------------
  490.  
  491. Higher sets FastLife's priority to one. Most programs must wait on
  492. FastLife when its priority is one since programs typically run at
  493. priority zero.
  494.  
  495. 8.1.9. Quit
  496. -----------
  497.  
  498. Quit closes FastLife. The <Esc> key will also close FastLife.
  499.  
  500. 8.2. Control
  501. ------------
  502.  
  503. 8.2.1. Once
  504. -----------
  505.  
  506. Once calculates one generation. You may want to use the Right-Amiga-/
  507. key combination to step FastLife one generation at a time.
  508.  
  509. 8.2.2. Speed
  510. ------------
  511.  
  512. Speed will display a brief description of how to slow FastLife.  Slowing
  513. FastLife will allow you to see what is happening in more detail and will
  514. cause FastLife to update the entire screen.
  515.  
  516. Pressing one of the number keys '1' thru '9' will select fastest through
  517. slowest speed, respectively.  '1' introduces no delay. Each higher
  518. numbered key slows FastLife more. '9' introduces about ten seconds of
  519. delay between each generation.  Also see the caveat under `Priority'.
  520.  
  521. 8.2.3. Run
  522. ----------
  523.  
  524. Run is a toggle menu item.  It causes the screen to update continuously
  525. or to stop.  It will be checkmarked when FastLife is running.
  526.  
  527. 8.2.4. Torus
  528. ------------
  529.  
  530. Torus is a toggle menu item: Each time you select it you change the
  531. state of the torus option, either on or off.  The screen edges wrap
  532. around when the torus option is on: the left edge of the screen touches
  533. the right edge, and the bottom edge of the screen touches the top.
  534.  
  535. Torus will be checkmarked when the torus option is on.
  536.  
  537. 8.2.5. Random
  538. -------------
  539.  
  540. Sometimes you may want FastLife to create a random field and see what
  541. develops. `Random' has several sub-items that allow you to control how
  542. random pixels are set.  You may control how many pixels are set.  You
  543. may select a seed for the random number generator that picks which
  544. pixels to set, or you may ask the computer to select a seed based on the
  545. system time.
  546.  
  547. 8.2.5.1. Random Field
  548. ---------------------
  549.  
  550. Random Field sets pixels randomly on the screen.
  551.  
  552. `Set Count...' lets you determine how many pixels will be set.
  553.  
  554. You may ask FastLife to select a `Random Seed'.
  555.  
  556. You may select a seed with `Set Seed...'.
  557.  
  558. Regardless of how you select the seed it will be used once. If you wish
  559. to regenerate a particular field you must use "Set Seed" again. You
  560. cannot (at least you probably cannot) recreate a particular field that
  561. you generated based on a "Random Seed".
  562.  
  563. 8.2.5.2. Random Seed
  564. --------------------
  565.  
  566. Random Seed lets the computer select a seed randomly. The seed will be
  567. used when setting a `Random Field'.  The computer will select one of 2.8
  568. x 10**14 seeds randomly based on the system time. You only get one use
  569. of a seed, so you cannot reproduce a field that you generated with
  570. "Random Seed".
  571.  
  572. Also see `Set Seed...'.
  573.  
  574. 8.2.5.3. Set Seed...
  575. --------------------
  576.  
  577. Set Seed... lets you select one of 65535 seeds to be used when creating
  578. a `Random Field'.  See also `Random Seed'.
  579.  
  580. 8.2.5.4. Set Count...
  581. ---------------------
  582.  
  583. Set Count lets you determine how many pixels will be set when creating a
  584. `Random Field'.  The default is five thousand pixels. You can use
  585. "Random Field" several times in a row to set more pixels.
  586.  
  587. Because the pixels are selected randomly, fewer than you specify  may be
  588. turned on since a pixel may be selected multiple times but can be turned
  589. on only once.
  590.  
  591. 9. Notes
  592. ========
  593.  
  594. FastLife is VERY dependent on having FAST RAM available. It will run
  595. properly without FAST RAM, but, as you might guess, it will be much
  596. slower. A lifeform that can be updated at 82 generations per second with
  597. FAST RAM will slow to 34 generations per second without it. If you have
  598. FAST RAM and FastLife seems too slow, try running "avail flush" from the
  599. CLI. This is necessary because the Amiga will keep libraries in FAST
  600. RAM, even when no one has them open and provide CHIP RAM to requests
  601. until it runs low on CHIP RAM.
  602.  
  603. Selecting "Control-Once" or "Control-Run" will appear to do nothing if
  604. there is no Life pattern on the screen.  Open a pattern file first.
  605. Also note that selecting speed key <9> may make it appear FastLife is
  606. stalled when it is not. Press the <1> key to run as fast as possible.
  607.  
  608. You may make multiple menu selections at one time. For example:  Press
  609. and hold the right mouse button, point at "Project-New" and click the
  610. left mouse button; point at "Project-Open" and click the left mouse
  611. button.  Release the right mouse button.  This will clear the screen and
  612. bring up "Open" in one menu action.  Multiple menu selections are
  613. explained in your Amiga software manual.
  614.  
  615. Often FastLife can calculate generations faster than the display rate of
  616. thirty (NTSC) or twenty-five (PAL) frames per second. You may see cases
  617. where gliders or other life forms appear to move without being updated
  618. properly.  Don't worry, FastLife is calculating each generation
  619. correctly. Try pressing a number key, <2> through <9>, to slow FastLife
  620. and allow you to see all of the action.
  621.  
  622. FastLife uses a buffer and a screen to do its work. The buffer will be
  623. in FAST RAM if it is available; the screen memory must be CHIP RAM. The
  624. buffer and the screen each use approximately the same amount of memory:
  625. (ScreenHeight * ScreenWidth / 8) bytes.
  626.  
  627. 10. File Format
  628. ===============
  629.  
  630. FastLife's patterns are stored in files with names that end in ".life".
  631. Many of the patterns were obtained with xlife version 2.0 for the
  632. X-Windows System, and retain a subset of the formats used there.
  633.  
  634. You can make your own Life patterns using your favorite text editor.
  635. Follow the format described below and save the file as plain text.
  636. Multitasking on the Amiga will allow you to switch back and forth
  637. between FastLife and your editor to speed your work.
  638.  
  639. Lines in the files that begin with "#C" are comment lines.
  640.  
  641. 10.1. Picture File Format
  642. -------------------------
  643.  
  644. The Picture file format has a "#P" in a line before the pattern itself.
  645. Each line that follows represents a line of cells across the screen,
  646. with ALIVECHAR being an ON cell and any other character being an OFF
  647. cell. ALIVECHAR defaults to '*'.
  648.  
  649. An example of a Picture file is
  650.  
  651.      #P
  652.      **.
  653.      .**
  654.      .*.
  655.  
  656. 10.2. Absolute File Format
  657. --------------------------
  658.  
  659. The Absolute file format consists of pairs of absolute X-Y addresses of
  660. the cells to turn ON, one pair per line.  The file may or may not have
  661. "#A" before the pattern.
  662.  
  663. 10.3. Relative File Format
  664. --------------------------
  665.  
  666. The Relative file must contain a line with "#R" before the pattern. Each
  667. following line has two numbers interpreted as an X-Y address relative to
  668. the position on the screen where you clicked.  The upper left of the
  669. image will normally be placed where you click the mouse on the screen.
  670. Two integers may follow the "#R" to offset the image.
  671.  
  672. 10.4. Run-Length Encoded File Format
  673. ------------------------------------
  674.  
  675. The Run-Length Encoded (RLE) file format has a line beginning with "#E"
  676. before the pattern. It may also have a line of the form
  677.  
  678.      x = <width>, y = <height>
  679.  
  680. to indicate the size of the life form. The pattern then follows. Here is
  681. an example pattern:
  682.  
  683.      10ob5o3b5o$10bobo12b20
  684.      3b4o!
  685.  
  686. 'o' indicates an On cell. 'b' indicates a Blank cell. '$' indicates the
  687. end of the current line on the screen. A number before any of these
  688. means to repeat it that number of times. '!' marks the end of the
  689. pattern. Whitespace in the pattern is ignored.
  690.  
  691. 11. Interesting Patterns
  692. ========================
  693.  
  694. Some patterns I find particularly interesting are:
  695.  
  696.   Alu.life
  697.   BreederRLE.life (Use a SuperHiRes, 1280x350 screen)
  698.   bunnies.life
  699.   f2.life
  700.   glider1_2.life
  701.   glider2_2.life
  702.   gliderglidergun.life
  703.   oscillators.life
  704.   p24.life
  705.   p26.life
  706.   p55.life
  707.   rabbit.life
  708.   randomgun.life
  709.   round.life
  710.   switchengine.life
  711.  
  712. 12. If You Have Trouble
  713. =======================
  714.  
  715. Be sure you have a pattern on the screen before you RUN or it will
  716. appear that nothing is happening.
  717.  
  718. Be sure the file you are trying to open has #P, #R, #A or #E before the
  719. pattern, otherwise nothing will be displayed.
  720.  
  721. Press the <1> key to make FastLife run as fast as possible, or press the
  722. <2> key to avoid the static bottom and right edge. Note that dragging
  723. the screen down with the left-amiga key and LMB will confuse FastLife
  724. and the screen may not be updated correctly. Either don't drag the
  725. screen down, or if you do, press the <2> key so that the entire screen
  726. is updated.
  727.  
  728. Make sure you have FAST RAM available. FastLife runs much slower when it
  729. cannot get FAST RAM.
  730.  
  731. Close other screens, windows, projects and tools (or reboot) to free
  732. CHIP and FAST memory if you can't get the screen size you want.
  733.  
  734. Reboot to remove memory fragmentation.
  735.  
  736. 13. FastLife and Pre-2.04 AmigaDOS
  737. ==================================
  738.  
  739. If you have an earlier release of AmigaDOS you can run an earlier 
  740. version (1.1) of FastLife found on Fred Fish's Library disk number 608.
  741. It should run with AmigaDOS 1.2, 1.3 and 2.03 and will use the ARP
  742. library if it is available.
  743.  
  744. 14. Tomas Rokicki's Life Program
  745. ================================
  746.  
  747. Tomas Rokicki's Life program, version 6.1, can be found on Fred Fish's
  748. Library disk number 837.  Tomas' 6.1 Life routines are responsible for
  749. FastLife's speed.
  750.  
  751. 15. Author
  752. ==========
  753.  
  754.     Ron Charlton
  755.     9002 Balcor Circle
  756.     Knoxville, TN 37923 USA
  757.  
  758.     (615)694-0800 evenings Eastern Time
  759.  
  760.     Internet:  charlton@cs.utk.edu
  761.                charltr@euclid.eng.ornl.gov
  762.                charltoncr@ornl.gov
  763.  
  764. Please send any comments, bug reports, suggestions, etc., to the author.
  765.  
  766. FastLife was developed with SAS/C version 6.50 and has been tested with
  767. Amiga Software Release 2.1.  It should work with release 2.04 and later.
  768.  
  769.  
  770.  
  771.  
  772.  
  773.  
  774.  
  775.  
  776.  
  777.  
  778.  
  779.  
  780.  
  781.  
  782.  
  783.  
  784.  
  785.  
  786.  
  787.  
  788.  
  789.  
  790.  
  791.  
  792.  
  793.